DLL a Invalid pointer operation
Otázka od: mydelphiconf@centrum.cz
15. 9. 2004 13:39
Ahojky lidi,
na malem prikladku (pokus dostat string z DLL) mi to hazi zajimavou chybku.
v DLL mam exportovanou funkci, ktera vraci String (polozka z pole podle
urciteho indexu).
Na formu pomoci tlacitka vyvolavam udalost pro nacteni toho stringu z DLL,
hodnota se nacte a pak to hodi Error modalni okno s hlaskou INVALID POINTER
OPERATION. V momente, kdy volam jinou funkci z DLL, ktera vraci jiny typ nez
string, tak je vse v poradku. Nevite nikdo, cim to je? (ShareMem v DLL
includuju, jinak by nesla ani zkompilovat, ze
P.
WinXPcz SP1, D7ent.
Odpovedá: Peter Ondras
16. 9. 2004 8:42
Len tak ma napada ci hodnota ktora sa ma zmenit na string nie je float a
pri prevode ma zly oddelovac (napr. system vyzaduje bodku a je tam
ciarka a naopak).
> -----Original Message-----
> na malem prikladku (pokus dostat string z DLL) mi to hazi zajimavou
> chybku.
>
> v DLL mam exportovanou funkci, ktera vraci String (polozka z pole
podle
> urciteho indexu).
> Na formu pomoci tlacitka vyvolavam udalost pro nacteni toho stringu z
DLL,
> hodnota se nacte a pak to hodi Error modalni okno s hlaskou INVALID
> POINTER OPERATION. V momente, kdy volam jinou funkci z DLL, ktera
vraci
> jiny typ nez string, tak je vse v poradku. Nevite nikdo, cim to je?
Odpovedá: Peter Ondras
16. 9. 2004 8:54
Teraz vidim, ze to co som napisal je velmi pravdepodobne zle.
Ospravedlnujem sa, zle som videl tu chybovu hlasku.
Takze v tomto neporadim, len poviem, ze ja v DLL vzdy pouzivam PChar a
nie String a potom v programe si ho prevadzam pomocou funkcii PChar() a
StrPas() na prave potrebny typ.
> -----Original Message-----
> Len tak ma napada ci hodnota ktora sa ma zmenit na string nie je float
a
> pri prevode ma zly oddelovac (napr. system vyzaduje bodku a je tam
> ciarka a naopak).
>
> > -----Original Message-----
> > na malem prikladku (pokus dostat string z DLL) mi to hazi
zajimavou
> > chybku.
> >
> > v DLL mam exportovanou funkci, ktera vraci String (polozka z pole
> podle
> > urciteho indexu).
> > Na formu pomoci tlacitka vyvolavam udalost pro nacteni toho stringu
z
> DLL,
> > hodnota se nacte a pak to hodi Error modalni okno s hlaskou INVALID
> > POINTER OPERATION. V momente, kdy volam jinou funkci z DLL, ktera
> vraci
> > jiny typ nez string, tak je vse v poradku. Nevite nikdo, cim to je?
>
Odpovedá: mydelphiconf@centrum.cz
16. 9. 2004 9:34
jojo, to bude ono ... s tim Pchar to facha spravne. Nasel jsem to vcera
odpoledne nekde na webiku jako standardni a doporucene reseni. Holt s DLL
zacinam a takhle to dopada Ponauceni pro priste.
P.
______________________________________________________________
> Od: "Peter Ondras" peter.ondras@pse.sk
... ze ja v DLL vzdy pouzivam PChar a nie String a potom v programe si ho
prevadzam pomocou funkcii PChar() a StrPas() na prave potrebny typ.